package com.itheima.stock.service;

import com.itheima.stock.common.domain.IncreaseQuery;
import com.itheima.stock.common.domain.InnerMarketDomain;
import com.itheima.stock.pojo.StockBusiness;
import com.itheima.stock.vo.resp.PageResult;
import com.itheima.stock.vo.resp.R;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

//定义操纵股票服务接口
public interface StockService {
    //查询所哟股票主营业务信息
    R<List<StockBusiness>> findAllBusiness();


    //获取国内大盘实时数据
    R<List<InnerMarketDomain>> innerIndexAll();


    R<List<Map>> sectorAllLimit();


    /**
     * 涨幅榜
     * 沪深两市个股涨幅分时行情数据查询，以时间顺序查询前10条数据
     *
     * @return
     */
    R<List<IncreaseQuery>> stockIncreaseLimit();

    /**
     * 沪深两市个股行情列表查询 ,以时间顺序和涨幅排序分页查询
     *
     * @param page     当前页
     * @param pageSize 每页大小
     * @return
     */
    R<PageResult<Map>> getStockAll(Integer page, Integer pageSize);

    /**
     * 涨停跌停数
     * 沪深两市涨跌停分时行情数据查询，查询T日每分钟的涨跌停数据
     *
     * @return
     */
    R<Map> upDownCount();


    /**
     * 涨幅榜数据分页导出到excel
     *
     * @param response 用于响应excel文件
     * @param page     当前页
     * @param pageSize 每页大小
     */
    void stockExport(HttpServletResponse response, Integer page, Integer pageSize);


    /**
     * 成交量对比
     * 沪深两市个股涨跌行情数据查询，查询T日分时成交量与T-1日分时成交量对比数据
     * 简言之，统计两市成交量在每分钟的之和的统计；
     *
     * @return
     */
    R<Map> stockTradeVol4InnerMarket();

    /**
     * 查询指定时间下股票的涨跌幅度区间统计功能
     * 如果当前日期不在有效时间内，则以最近的一个股票交易时间作为查询时间点
     *
     * @param lastDateTime
     * @return
     */
    R<Map> stockUpDownScopeCount();

    /**
     * 个股分时行情
     * 查询单个个股的分时行情数据，查询时间周期是T日开盘到当前时间
     *
     * @param sotckCode 个股编码
     * @return
     */
    R<List<Map>> stockScreenTimeSharing(String code);


    /**
     * 单个个股日K 数据查询 ，可以根据时间区间查询数日的K线数据
     *
     * @param stockCode 股票编码
     */
    R<List<Map>> stockCreenDkLine(String code);
}
